package com.yjz.designpattern.singletonpattern.enumSingleTon;

/**
 * @author :yuanJinZhong
 * @description: 枚举里面 可以有抽象方法
 * @date :2018/5/8-10:10
 */
public enum Type {
  A(1) {
    @Override
    public Type getType() {
      return null;
    }
  }, B(2) {
    @Override
    public Type getType() {
      return null;
    }
  }, C(3) {
    @Override
    public Type getType() {
      return null;
    }
  }, D(4) {
    @Override
    public Type getType() {
      return null;
    }
  };//此处是枚举的静态实例，编译时会调用枚举的有参构造函数实例化（所以需要1个私有成员 private  int  a）

  private int a;

  Type(int a) {
    this.a = a;
    System.out.println("调用枚举的构造方法");
  }

  public void say() {
    System.out.println("枚举内部方法");
  }

  public int getA() {
    return a;
  }

  public void setA(int a) {
    this.a = a;
  }

  //一个抽象方法
  public abstract Type getType();
}

//例子https://www.cnblogs.com/yangzhilong/p/6148639.html
